home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Everything For A Hacker
/
19990506-[HACK].iso
/
HEXEDIT
/
UTILS
/
80X0393.ARJ
/
FEEP.ASM
< prev
next >
Wrap
Assembly Source File
|
1993-03-30
|
2KB
|
62 lines
;
; FEEP Timer interrupt diagnostic checker.
; Beeps while timer interrupt (int 08) is being serviced.
; Released to the public domain by Sam Warden 1992/10/13.
; TSR. Source compatible with MS MASM 5.1.
;
COUNT EQU 91 ; = 18.2 x 5 (5 sec. interval)
;
_TEXT SEGMENT PARA PUBLIC 'CODE'
ASSUME cs:_TEXT, ds:_TEXT, es:_TEXT, ss:_TEXT
ORG 100h
;
main: jmp SHORT init
;
counter DB COUNT
feeping DB 0
oldvec DD 0
;
handler: ; INT 08 handler
pushf ; 1st call original handler
call dword ptr cs:oldvec
;
cmp cs:feeping,1 ; if already feeping
jne feep
push ax
in al,61h ; stop
and al,0FCh
jmp SHORT $ + 2
out 61h,al
pop ax
mov cs:feeping,0
feep:
dec cs:counter
jnz go_on ; if counter = 0
mov cs:counter,COUNT ; reset
push ax
in al,61h ; and feep
or al,3
jmp SHORT $ + 2
out 61h,al
pop ax
mov cs:feeping,1
go_on: iret
;
tsr_end EQU $
;
init: mov es,ds:[002Ch] ; get pointer to env. from PSP
mov ah,49h ; release environment memory
int 21h
mov ax,3508h ; get timer interrupt vector
int 21h ; in es:bx
mov word ptr oldvec,bx ; and store it
mov word ptr oldvec+2,es
mov ax,2508h ; set new timer vector
mov dx,OFFSET handler
int 21h
mov dx,OFFSET tsr_end ; and go resident
int 27h
;
_TEXT ENDS
END main